#pragma pack_matrix(row_major)

struct vs_in
{
	float3 position : POSITION;
	float4 color : COLOR;
};

struct vs_out
{
	float4 position : SV_POSITION;
	float4 color : COLOR;
};

cbuffer buffer : register(b0)
{
	float4x4 world;
	float4x4 view;
	float4x4 proj;
}

vs_out main(vs_in inval)
{
	vs_out outval = (vs_out)0;

	float4 localH = mul(float4(inval.position.xyz, 1.f), world);
	localH = mul(localH, view);
	localH = mul(localH, proj);
	outval.position = localH;
	outval.color = inval.color;

	return outval;
}